package com.xnyzc.lhy.mis.service.cms.vehicle;

import com.xnyzc.lhy.common.entity.Rv;
import com.xnyzc.lhy.mis.entity.result.cms.veh.VehicleManageInfo;
import com.xnyzc.lhy.mis.entity.vehicle.OaCVehicleInsurance;
import com.xnyzc.lhy.mis.entity.vehicle.OaSysVehicle;

import java.util.List;

/**
 * 车辆信息管理接口
 *
 * @author zhaolijie
 * @date 2019-08-24
 */
public interface VehicleManageService {


    /**
     * 分页获取车辆信息
     *
     * @param vehicleManageInfo
     * @return
     */
    Rv getVehicleList(VehicleManageInfo vehicleManageInfo);


    /**
     * 查询车辆详情
     *
     * @param vehicleId ：车辆Id
     * @return
     */
    Rv getVehicleDetails(Long vehicleId);

    /**
     * 获取司机所有信息
     *
     * @return
     */
    Rv getDriverInfo(Integer current, Integer pageSize, String driverName, String driverPhone);

    /**
     * 添加部分车辆信息
     *
     * @param oaSysVehicle：车辆信息表实体类
     * @return
     */
    Rv addVehicle(OaSysVehicle oaSysVehicle);

    /**
     * 新增车辆信息
     *
     * @param oaSysVehicle：车辆信息表实体类
     * @return
     */
    Rv addNewVehicle(OaSysVehicle oaSysVehicle);
    /**
     * 查询车辆颜色
     *
     * @return
     */
    Rv findVehicleColor();

    /**
     * 修改车辆信息
     *
     * @param vehicleManageInfo：车辆信息表实体类
     * @return
     */
    Rv updateVehicle(VehicleManageInfo vehicleManageInfo);

    /**
     * 删除车辆信息
     *
     * @param vehicleId:车辆ID
     * @return
     */
    Rv deleteVehicle(Long vehicleId);

    /**
     * 分页模糊查询车辆信息
     *
     * @param current：查询的页号
     * @param veh_status：车辆状态（0：空闲、1：维修中、2：使用中）
     * @param companyId：公司ID
     * @param veh_type：车辆类型(0-经济型,1-舒适性,2-商务型,3-豪华型)
     * @param veh_no：车牌号
     * @return
     */
    Rv getVehicleListLike(Integer current, String veh_status, String companyId, String veh_type, String veh_no);


    /**
     * 查询数据导出Excel
     *
     * @return
     */
    Rv exportGetVehicle(VehicleManageInfo vehicleManageInfo);

    /**
     * 品牌车系数据查询拼接
     *
     * @return
     */
    Rv brandCarSystem();


    Rv vehicleInsuranceOperate(OaCVehicleInsurance oaSysVehicleInsur);

    Rv getVehicleInsuranceInfoByVeho(String veho);
}
